﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ToolKit.Mvvm.Enums
{
    /// <summary>
    /// 对象生命周期
    /// </summary>
    public enum Lifetime
    {
        /// <summary>
        /// 单例
        /// </summary>
        Singleton,

        /// <summary>
        /// 瞬态
        /// </summary>
        Transient,
    }


    /*
     *  Transient（瞬态）:
        每次请求时都会创建一个新的对象实例。
        适用于无状态服务，其中每个操作都不依赖于对象实例的先前状态。
        每次注入或解析时都会获得一个新的实例。
        Scoped（范围）:
        在一个特定的作用域（如一个Web请求）内，只会创建一个对象实例。
        在该作用域内的所有请求都将共享同一个实例。
        当作用域结束时（例如Web请求完成时），该实例将被销毁。
        对于Web应用程序，这通常意味着每个HTTP请求都会有一个新的实例，但同一个请求内的所有服务调用都将共享同一个实例。
        Singleton（单例）:
        应用程序的生命周期内只创建一个对象实例。
        无论何时请求该对象，都会返回相同的实例。
        这意味着所有对服务的引用都将指向同一个实例。
        单例对象通常用于配置数据或全局状态，这些数据或状态需要在整个应用程序中保持一致。
     */
}
